home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 7 / Apprentice-Release7.iso / Environments / PowerLisp 2.01 / PowerLisp 2.01 ƒ / Library / describe.lisp < prev    next >
Lisp/Scheme  |  1996-05-17  |  2KB  |  57 lines

  1. ;;;
  2. ;;;        PowerLisp 2.0
  3. ;;;        Copyright © 1996 Roger Corman.  All rights reserved.
  4. ;;;        68k Assembler source
  5. ;;;
  6.  
  7. ;
  8. ;    File:        describe.lisp
  9. ;    Contents:    describe implementation for PowerLisp.
  10. ;
  11. (in-package :common-lisp)
  12. (provide :describe)
  13.  
  14. (defun %describe (obj &optional (stream *standard-output*))
  15.     (typecase obj
  16.         (symbol     (describe-symbol obj stream))
  17.         (cons        (describe-cons obj stream))
  18.         (package     (describe-package obj stream))
  19.         (t            (format  stream 
  20.                         "Sorry, no information available for: ~A" obj))))
  21.         
  22. (defun describe-symbol (obj stream &aux value-list)
  23.     (setq value-list (%symbol-value-stack obj))
  24.     (format stream "~%Symbol: ~A~%" obj)
  25.     (format stream "Print name: ~A~%" (symbol-name obj))
  26.     (format stream "Value: ~A~%" (car value-list))
  27.     (format stream "Dynamic values stack: ~A~%" value-list)
  28.     (format stream "Package: ~A~%" (symbol-package obj))
  29.     (format stream "Property list: ~A~%" (symbol-plist obj))
  30.     (format stream "Function: ~A~%" (symbol-function obj))
  31.     (format stream "Constant flag: ~A~%" (if (constantp obj) t nil)))
  32.     
  33. (defun describe-cons (obj stream)
  34.     (format stream "~%Cons cell:~%")
  35.     (format stream "Car: ~A~%" (car obj))
  36.     (format stream "Cdr: ~A~%" (cdr obj)))
  37.     
  38. (defun describe-package (obj stream)
  39.     (format stream "~%Package:~%")
  40.     (format stream "Name: ~A~%" (package-name obj))
  41.     (format stream "Nicknames: ~A~%" (package-nicknames obj))
  42.     (format stream "Use list: ~A~%" (package-use-list obj))
  43.     (format stream "Used by list: ~A~%" (package-used-by-list obj))
  44.     (format stream "Shadowing symbols: ~A~%" (package-shadowing-symbols obj)))
  45.     
  46.  
  47.     
  48.     
  49.     
  50.     
  51.     
  52.     
  53.     
  54.  
  55.  
  56.  
  57.